package mx.ipn.pruebas;

import java.util.ArrayList;

import mx.ipn.persistencia.FabricaDeDAOs;
import mx.ipn.persistencia.dao.*;
import mx.ipn.to.*;

public class PruebasDAOs14 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		FabricaDeDAOs fabricaMySQL = FabricaDeDAOs
				.getFabricaDeDAOs(mx.ipn.Constantes.FABRICA_DAOS_MYSQL);
		short resultado;

		// ***********************************************************************************************
		// COLONIACALLE
		System.out
				.println("<<<<<<<<<<<<<<<<<<<<<<<<<COLONIACALLE>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
		try {

			ColoniaTO coloniaTO = new ColoniaTO();
			coloniaTO.setIdColonia(1);
			CalleTO calleTO = new CalleTO();
			calleTO.setIdCalle(1);

			ColoniaCalleDAO coloniaCalleDAO = fabricaMySQL.getColoniaCalleDAO();
			ColoniaCalleTO coloniaCalleTO = new ColoniaCalleTO(0, 1, 1, "234",
					"A", "3");

			// insert
			if (coloniaCalleDAO.insertColoniaCalle(coloniaCalleTO)) {
				coloniaCalleDAO.insertColoniaCalle(coloniaCalleTO);
				System.out
						.println("+++++++++++++++++++ Insertado correctamente");
			} else
				System.out.println("Falla en la insercion");

			// delete
			resultado = coloniaCalleDAO.deleteColoniaCalle(10);
			if (resultado == 1)
				System.out.println(">>>>>>>>>>>>>>>>>>> Borrado correctamente");
			else if (resultado == 0)
				System.out.println("Falla en el borrado");
			else if (resultado == -1)
				System.out.println("Ocurrio una excepcion");

			// actualiza
			coloniaCalleTO.setIdColoniaCalle(1);
			coloniaCalleTO.setIdCalle(4);
			coloniaCalleTO.setPlano("5000");

			resultado = coloniaCalleDAO.updateColoniaCalle(coloniaCalleTO);
			if (resultado == 1)
				System.out
						.println(">>>>>>>>>>>>>>>>>>> Actualizado correctamente");
			else if (resultado == 0)
				System.out.println("Falla en la actualizacion");
			else if (resultado == -1)
				System.out.println("Ocurrio una excepcion");

			// Busca
			System.out.println("------------------------- BUSQUEDA POR ID");
			coloniaCalleTO = coloniaCalleDAO.findColoniaCalleById(1);
			if (coloniaCalleTO != null) {
				System.out.println("Busqueda exitosa");

				System.out.println("COLONIACALLE");
				ImprimirTO.Imprime(coloniaCalleTO);

				for (int x = 0; x < coloniaCalleTO.getListColoniaTO().length; x++) {
					System.out.println("COLONIA");
					ImprimirTO.Imprime(coloniaCalleTO.getListColoniaTO()[x]);
				}
				for (int x = 0; x < coloniaCalleTO.getListColoniaTO().length; x++) {
					System.out.println("CALLE");
					ImprimirTO.Imprime(coloniaCalleTO.getListCalleTO()[x]);
				}
				System.out.println("PLANO");
				System.out.println(coloniaCalleTO.getPlano());
				System.out.println("RENGLON");
				System.out.println(coloniaCalleTO.getRenglon());
				System.out.println("COLUMNA");
				System.out.println(coloniaCalleTO.getColumna());

			} else {
				System.out.println("Falla en la seleccion");
			}

			// busqueda multiple
			System.out
					.println("**++++++++++++++++++++++ SELECT COLONIACALLE +**");
			java.util.Collection<ColoniaCalleTO> listColoniaCalleTO = coloniaCalleDAO
					.selectColoniaCalle();
			for (int i = 0; i < listColoniaCalleTO.size(); i++) {
				coloniaCalleTO = ((ArrayList<ColoniaCalleTO>) listColoniaCalleTO)
						.get(i);
				System.out.println("COLONIACALLE");
				ImprimirTO.Imprime(coloniaCalleTO);

				for (int x = 0; x < coloniaCalleTO.getListColoniaTO().length; x++) {
					System.out.println("COLONIA");
					ImprimirTO.Imprime(coloniaCalleTO.getListColoniaTO()[x]);
				}
				for (int x = 0; x < coloniaCalleTO.getListColoniaTO().length; x++) {
					System.out.println("CALLE");
					ImprimirTO.Imprime(coloniaCalleTO.getListCalleTO()[x]);
				}
				System.out.println("PLANO");
				System.out.println(coloniaCalleTO.getPlano());
				System.out.println("RENGLON");
				System.out.println(coloniaCalleTO.getRenglon());
				System.out.println("COLUMNA");
				System.out.println(coloniaCalleTO.getColumna());
			}

			// Busca
			System.out.println("------------------- BUSQUEDA POR COLONIA");
			coloniaCalleTO = coloniaCalleDAO.selectColoniaCalleByColonia(1);
			if (coloniaCalleTO != null) {
				System.out.println("Busqueda exitosa");

				System.out.println("COLONIACALLE");

				for (int x = 0; x < coloniaCalleTO.getListIdColiniaCalle().length; x++) {
					System.out.println("IDCOLONIACALLE");
					System.out
							.println(coloniaCalleTO.getListIdColiniaCalle()[x]);
				}
				for (int x = 0; x < coloniaCalleTO.getListCalleTO().length; x++) {
					System.out.println("CALLE");
					ImprimirTO.Imprime(coloniaCalleTO.getListCalleTO()[x]);
				}
				for (int x = 0; x < coloniaCalleTO.getListPlano().length; x++) {
					System.out.println("PLANO");
					System.out.println(coloniaCalleTO.getListPlano()[x]);
				}
				for (int x = 0; x < coloniaCalleTO.getListRenglon().length; x++) {
					System.out.println("RENGLON");
					System.out.println(coloniaCalleTO.getListRenglon()[x]);
				}
				for (int x = 0; x < coloniaCalleTO.getListColumna().length; x++) {
					System.out.println("COLUMNA");
					System.out.println(coloniaCalleTO.getListColumna()[x]);
				}

				for (int x = 0; x < coloniaCalleTO.getListColoniaTO().length; x++) {
					System.out.println("COLONIA");
					ImprimirTO.Imprime(coloniaCalleTO.getListColoniaTO()[x]);
				}

			} else {
				System.out.println("Falla en la seleccion");
			}

			// Busca
			System.out.println("------------------- BUSQUEDA POR CALLE");
			coloniaCalleTO = coloniaCalleDAO.selectColoniaCalleByCalle(1);
			if (coloniaCalleTO != null) {
				System.out.println("Busqueda exitosa");

				System.out.println("COLONIACALLE");

				for (int x = 0; x < coloniaCalleTO.getListIdColiniaCalle().length; x++) {
					System.out.println("IDCOLONIACALLE");
					System.out
							.println(coloniaCalleTO.getListIdColiniaCalle()[x]);
				}

				for (int x = 0; x < coloniaCalleTO.getListColoniaTO().length; x++) {
					System.out.println("COLONIA");
					ImprimirTO.Imprime(coloniaCalleTO.getListColoniaTO()[x]);
				}
				for (int x = 0; x < coloniaCalleTO.getListPlano().length; x++) {
					System.out.println("PLANO");
					System.out.println(coloniaCalleTO.getListPlano()[x]);
				}
				for (int x = 0; x < coloniaCalleTO.getListRenglon().length; x++) {
					System.out.println("RENGLON");
					System.out.println(coloniaCalleTO.getListRenglon()[x]);
				}
				for (int x = 0; x < coloniaCalleTO.getListColumna().length; x++) {
					System.out.println("COLUMNA");
					System.out.println(coloniaCalleTO.getListColumna()[x]);
				}

				for (int x = 0; x < coloniaCalleTO.getListCalleTO().length; x++) {
					System.out.println("CALLE");
					ImprimirTO.Imprime(coloniaCalleTO.getListCalleTO()[x]);
				}

			} else {
				System.out.println("Falla en la seleccion");
			}

		} catch (Exception e) {
			System.out.println("Ocurrio una excepcion");
		}

		// ***********************************************************************************************
		// DIRECCION
		System.out
				.println("<<<<<<<<<<<<<<<<<<<<<<<<<DIRECCION>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
		try {

			ColoniaCalleTO coloniaCalleTO = new ColoniaCalleTO();
			coloniaCalleTO.setIdColoniaCalle(1);

			DireccionDAO direccionDAO = fabricaMySQL.getDireccionDAO();
			DireccionTO direccionTO = new DireccionTO(0, "123", "203",
					"no se sabe", "no hay", coloniaCalleTO);

			// insert
			if (direccionDAO.insertDireccion(direccionTO)) {
				direccionDAO.insertDireccion(direccionTO);
				System.out
						.println("+++++++++++++++++++ Insertado correctamente");
			} else
				System.out.println("Falla en la insercion");

			// delete
			resultado = direccionDAO.deleteDireccion(10);
			if (resultado == 1)
				System.out.println(">>>>>>>>>>>>>>>>>>> Borrado correctamente");
			else if (resultado == 0)
				System.out.println("Falla en el borrado");
			else if (resultado == -1)
				System.out.println("Ocurrio una excepcion");

			// actualiza
			direccionTO.setIdDireccion(1);
			direccionTO.setNumero("5000");

			resultado = direccionDAO.updateDireccion(direccionTO);
			if (resultado == 1)
				System.out
						.println(">>>>>>>>>>>>>>>>>>> Actualizado correctamente");
			else if (resultado == 0)
				System.out.println("Falla en la actualizacion");
			else if (resultado == -1)
				System.out.println("Ocurrio una excepcion");

			// Busca
			System.out.println("------------------------- BUSQUEDA POR ID");
			direccionTO = direccionDAO.findDireccionById(1);
			if (direccionTO != null) {
				System.out.println("Busqueda exitosa");

				System.out.println("DIRECCION");
				ImprimirTO.Imprime(direccionTO);
				System.out.println("CALLECOLONIA");
				ImprimirTO.Imprime(direccionTO.getColoniaCalleTO());

			} else {
				System.out.println("Falla en la seleccion");
			}

			// Busca
			System.out.println("------------------------- BUSQUEDA POR NUMERO INTERIOR COLONIACALLE");
			direccionTO = direccionDAO.findDireccionByNumeroIntColoniaCalle(
					"9", "304", 3);
			if (direccionTO != null) {
				System.out.println("Busqueda exitosa");

				System.out.println("DIRECCION");
				ImprimirTO.Imprime(direccionTO);
				System.out.println("CALLECOLONIA");
				ImprimirTO.Imprime(direccionTO.getColoniaCalleTO());

			} else {
				System.out.println("Falla en la seleccion");
			}

			// busqueda multiple
			System.out.println("**++++++++++++++++++++++ SELECT DIRECCION +**");
			java.util.Collection<DireccionTO> listDireccionTO = direccionDAO
					.selectDireccion();
			for (int i = 0; i < listDireccionTO.size(); i++) {
				direccionTO = ((ArrayList<DireccionTO>) listDireccionTO).get(i);
				System.out.println("DIRECCION");
				ImprimirTO.Imprime(direccionTO);
				System.out.println("CALLECOLONIA");
				ImprimirTO.Imprime(direccionTO.getColoniaCalleTO());
			}
			
			// Busca
			System.out.println("------------------- BUSQUEDA POR COLONIACALLE");
			direccionTO = direccionDAO.selectDireccionByColoniaCalle(1);
			if (direccionTO != null) {
				System.out.println("Busqueda exitosa");

				System.out.println("DIRECCION");

				for (int x = 0; x < direccionTO.getListIdDireccion().length; x++) {
					System.out.println("IDDIRECCION");
					System.out.println(direccionTO.getListIdDireccion()[x]);
				}
				for (int x = 0; x < direccionTO.getListnumero().length; x++) {
					System.out.println("NUMERO");
					System.out.println(direccionTO.getListnumero()[x]);
				}
				for (int x = 0; x < direccionTO.getListInterior().length; x++) {
					System.out.println("INTERIOR");
					System.out.println(direccionTO.getListInterior()[x]);
				}
				for (int x = 0; x < direccionTO.getListEntreCalles().length; x++) {
					System.out.println("ENTRECALLE");
					System.out.println(direccionTO.getListEntreCalles()[x]);
				}
				for (int x = 0; x < direccionTO.getListOtrasReferencias().length; x++) {
					System.out.println("OTRASREFERENCIAS");
					System.out.println(direccionTO.getListOtrasReferencias()[x]);
				}

				
					System.out.println("COLONIACALLE");
					ImprimirTO.Imprime(direccionTO.getColoniaCalleTO());
				

			} else {
				System.out.println("Falla en la seleccion");
			}

			
		} catch (Exception e) {
			System.out.println("Ocurrio una excepcion");
		}

	}

}
